<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en-US">
<head>
<!-- GenHTML revision 25226-->
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<title>The address-book Application - The Java EE 6 Tutorial</title>
<meta name="robots" content="index,follow">
<meta name="robots" content="index,follow">
<meta name="date" content="2011-03-01">
<link rel="stylesheet" type="text/css" href="css/default.css">
<link rel="stylesheet" type="text/css" href="css/ipg.css">
<link rel="stylesheet" type="text/css" href="css/javaeetutorial.css">
</head>

<body>

<table border="0" cellpadding="5" cellspacing="0" width="100%">
<tbody>
   <tr valign="top">
      <td width="400px"><p class="toc level1"><a href="docinfo.html">Document Information</a></p>
<p class="toc level1 tocsp"><a href="gexaf.html">Preface</a></p>
<p class="toc level1 tocsp"><a href="gfirp.html">Part&nbsp;I&nbsp;Introduction</a></p>
<p class="toc level2"><a href="bnaaw.html">1.&nbsp;&nbsp;Overview</a></p>
<p class="toc level2"><a href="gfiud.html">2.&nbsp;&nbsp;Using the Tutorial Examples</a></p>
<p class="toc level1 tocsp"><a href="bnadp.html">Part&nbsp;II&nbsp;The Web Tier</a></p>
<p class="toc level2"><a href="bnadr.html">3.&nbsp;&nbsp;Getting Started with Web Applications</a></p>
<p class="toc level2"><a href="bnaph.html">4.&nbsp;&nbsp;JavaServer Faces Technology</a></p>
<p class="toc level2"><a href="giepx.html">5.&nbsp;&nbsp;Introduction to Facelets</a></p>
<p class="toc level2"><a href="gjddd.html">6.&nbsp;&nbsp;Expression Language</a></p>
<p class="toc level2"><a href="bnaqz.html">7.&nbsp;&nbsp;Using JavaServer Faces Technology in Web Pages</a></p>
<p class="toc level2"><a href="gjcut.html">8.&nbsp;&nbsp;Using Converters, Listeners, and Validators</a></p>
<p class="toc level2"><a href="bnatx.html">9.&nbsp;&nbsp;Developing with JavaServer Faces Technology</a></p>
<p class="toc level2"><a href="gkmaa.html">10.&nbsp;&nbsp;JavaServer Faces Technology Advanced Concepts</a></p>
<p class="toc level2"><a href="bnawo.html">11.&nbsp;&nbsp;Configuring JavaServer Faces Applications</a></p>
<p class="toc level2"><a href="gkiow.html">12.&nbsp;&nbsp;Using Ajax with JavaServer Faces Technology</a></p>
<p class="toc level2"><a href="gkhxa.html">13.&nbsp;&nbsp;Advanced Composite Components</a></p>
<p class="toc level2"><a href="bnavg.html">14.&nbsp;&nbsp;Creating Custom UI Components</a></p>
<p class="toc level2"><a href="bnafd.html">15.&nbsp;&nbsp;Java Servlet Technology</a></p>
<p class="toc level2"><a href="bnaxu.html">16.&nbsp;&nbsp;Internationalizing and Localizing Web Applications</a></p>
<p class="toc level1 tocsp"><a href="bnayk.html">Part&nbsp;III&nbsp;Web Services</a></p>
<p class="toc level2"><a href="gijti.html">17.&nbsp;&nbsp;Introduction to Web Services</a></p>
<p class="toc level2"><a href="bnayl.html">18.&nbsp;&nbsp;Building Web Services with JAX-WS</a></p>
<p class="toc level2"><a href="giepu.html">19.&nbsp;&nbsp;Building RESTful Web Services with JAX-RS</a></p>
<p class="toc level2"><a href="gjjxe.html">20.&nbsp;&nbsp;Advanced JAX-RS Features</a></p>
<p class="toc level2"><a href="gkojl.html">21.&nbsp;&nbsp;Running the Advanced JAX-RS Example Application</a></p>
<p class="toc level1 tocsp"><a href="bnblr.html">Part&nbsp;IV&nbsp;Enterprise Beans</a></p>
<p class="toc level2"><a href="gijsz.html">22.&nbsp;&nbsp;Enterprise Beans</a></p>
<p class="toc level2"><a href="gijre.html">23.&nbsp;&nbsp;Getting Started with Enterprise Beans</a></p>
<p class="toc level2"><a href="gijrb.html">24.&nbsp;&nbsp;Running the Enterprise Bean Examples</a></p>
<p class="toc level2"><a href="bnbpk.html">25.&nbsp;&nbsp;A Message-Driven Bean Example</a></p>
<p class="toc level2"><a href="gkcqz.html">26.&nbsp;&nbsp;Using the Embedded Enterprise Bean Container</a></p>
<p class="toc level2"><a href="gkidz.html">27.&nbsp;&nbsp;Using Asynchronous Method Invocation in Session Beans</a></p>
<p class="toc level1 tocsp"><a href="gjbnr.html">Part&nbsp;V&nbsp;Contexts and Dependency Injection for the Java EE Platform</a></p>
<p class="toc level2"><a href="giwhb.html">28.&nbsp;&nbsp;Introduction to Contexts and Dependency Injection for the Java EE Platform</a></p>
<p class="toc level2"><a href="gjbls.html">29.&nbsp;&nbsp;Running the Basic Contexts and Dependency Injection Examples</a></p>
<p class="toc level2"><a href="gjehi.html">30.&nbsp;&nbsp;Contexts and Dependency Injection for the Java EE Platform: Advanced Topics</a></p>
<p class="toc level2"><a href="gkhre.html">31.&nbsp;&nbsp;Running the Advanced Contexts and Dependency Injection Examples</a></p>
<p class="toc level1 tocsp"><a href="bnbpy.html">Part&nbsp;VI&nbsp;Persistence</a></p>
<p class="toc level2"><a href="bnbpz.html">32.&nbsp;&nbsp;Introduction to the Java Persistence API</a></p>
<p class="toc level2"><a href="gijst.html">33.&nbsp;&nbsp;Running the Persistence Examples</a></p>
<p class="toc level3"><a href="giqst.html">The <tt>order</tt> Application</a></p>
<p class="toc level4"><a href="giqst.html#giqrh">Entity Relationships in the <tt>order</tt> Application</a></p>
<p class="toc level5"><a href="giqst.html#giqqr">Self-Referential Relationships</a></p>
<p class="toc level5"><a href="giqst.html#giqsr">One-to-One Relationships</a></p>
<p class="toc level5"><a href="giqst.html#giqtj">One-to-Many Relationship Mapped to Overlapping Primary and Foreign Keys</a></p>
<p class="toc level5"><a href="giqst.html#giqud">Unidirectional Relationships</a></p>
<p class="toc level4 tocsp"><a href="giqst.html#giqqy">Primary Keys in the <tt>order</tt> Application</a></p>
<p class="toc level5"><a href="giqst.html#giquv">Generated Primary Keys</a></p>
<p class="toc level5"><a href="giqst.html#giquf">Compound Primary Keys</a></p>
<p class="toc level4 tocsp"><a href="giqst.html#giqtl">Entity Mapped to More Than One Database Table</a></p>
<p class="toc level4"><a href="giqst.html#gique">Cascade Operations in the <tt>order</tt> Application</a></p>
<p class="toc level4"><a href="giqst.html#giqsc">BLOB and CLOB Database Types in the <tt>order</tt> Application</a></p>
<p class="toc level4"><a href="giqst.html#giqum">Temporal Types in the <tt>order</tt> Application</a></p>
<p class="toc level4"><a href="giqst.html#giqqv">Managing the <tt>order</tt> Application's Entities</a></p>
<p class="toc level5"><a href="giqst.html#giqrr">Creating Entities</a></p>
<p class="toc level5"><a href="giqst.html#giqqc">Finding Entities</a></p>
<p class="toc level5"><a href="giqst.html#giquk">Setting Entity Relationships</a></p>
<p class="toc level5"><a href="giqst.html#giqsv">Using Queries</a></p>
<p class="toc level5"><a href="giqst.html#giqtw">Removing Entities</a></p>
<p class="toc level4 tocsp"><a href="giqst.html#giqup">Building, Packaging, Deploying, and Running the <tt>order</tt> Application</a></p>
<p class="toc level5"><a href="giqst.html#giqsg">To Build, Package, Deploy, and Run <tt>order</tt> UsingNetBeans IDE</a></p>
<p class="toc level5"><a href="giqst.html#giqty">To Build, Package, Deploy, and Run <tt>order</tt> Using Ant</a></p>
<p class="toc level5"><a href="giqst.html#giqrq">The <tt>all</tt> Task</a></p>
<p class="toc level3 tocsp"><a href="giqsq.html">The <tt>roster</tt> Application</a></p>
<p class="toc level4"><a href="giqsq.html#giqso">Relationships in the <tt>roster</tt> Application</a></p>
<p class="toc level5"><a href="giqsq.html#giqqk">The Many-To-Many Relationship in <tt>roster</tt></a></p>
<p class="toc level4 tocsp"><a href="giqsq.html#giqrf">Entity Inheritance in the <tt>roster</tt> Application</a></p>
<p class="toc level4"><a href="giqsq.html#gjjfl">Criteria Queries in the <tt>roster</tt> Application</a></p>
<p class="toc level5"><a href="giqsq.html#gjjex">Metamodel Classes in the <tt>roster</tt> Application</a></p>
<p class="toc level5"><a href="giqsq.html#gjjfn">Obtaining a <tt>CriteriaBuilder</tt> Instance in <tt>RequestBean</tt></a></p>
<p class="toc level5"><a href="giqsq.html#gjjff">Creating Criteria Queries in <tt>RequestBean</tt>'s Business Methods</a></p>
<p class="toc level4 tocsp"><a href="giqsq.html#giqrx">Automatic Table Generation in the <tt>roster</tt> Application</a></p>
<p class="toc level4"><a href="giqsq.html#giquz">Building, Packaging, Deploying, and Running the <tt>roster</tt> Application</a></p>
<p class="toc level5"><a href="giqsq.html#giqug">To Build, Package, Deploy, and Run <tt>roster</tt> Using NetBeans IDE</a></p>
<p class="toc level5"><a href="giqsq.html#giqsj">To Build, Package, Deploy, and Run <tt>roster</tt> Using Ant</a></p>
<p class="toc level5"><a href="giqsq.html#giqry">The <tt>all</tt> Task</a></p>
<div id="scrolltoc" class="onpage">
<p class="toc level3 tocsp"><a href="">The <tt>address-book</tt> Application</a></p>
<p class="toc level4"><a href="#gkaoj">Bean Validation Constraints in <tt>address-book</tt></a></p>
<p class="toc level4"><a href="#gkanl">Specifying Error Messages for Constraints in <tt>address-book</tt></a></p>
<p class="toc level4"><a href="#gkaon">Validating <tt>Contact</tt> Input from a JavaServer Faces Application</a></p>
<p class="toc level4"><a href="#gkaop">Building, Packaging, Deploying, and Running the <tt>address-book</tt> Application</a></p>
<p class="toc level5"><a href="#gkaod">Building, Packaging, Deploying, and Running the <tt>address-book</tt> Application in NetBeans IDE</a></p>
<p class="toc level5"><a href="#gkanz">Building, Packaging, Deploying, and Running the <tt>address-book</tt> Application Using Ant</a></p>
</div>
<p class="toc level2 tocsp"><a href="bnbtg.html">34.&nbsp;&nbsp;The Java Persistence Query Language</a></p>
<p class="toc level2"><a href="gjitv.html">35.&nbsp;&nbsp;Using the Criteria API to Create Queries</a></p>
<p class="toc level2"><a href="gkjiq.html">36.&nbsp;&nbsp;Creating and Using String-Based Criteria Queries</a></p>
<p class="toc level2"><a href="gkjjf.html">37.&nbsp;&nbsp;Controlling Concurrent Access to Entity Data with Locking</a></p>
<p class="toc level2"><a href="gkjia.html">38.&nbsp;&nbsp;Improving the Performance of Java Persistence API Applications By Setting a Second-Level Cache</a></p>
<p class="toc level1 tocsp"><a href="gijrp.html">Part&nbsp;VII&nbsp;Security</a></p>
<p class="toc level2"><a href="bnbwj.html">39.&nbsp;&nbsp;Introduction to Security in the Java EE Platform</a></p>
<p class="toc level2"><a href="bncas.html">40.&nbsp;&nbsp;Getting Started Securing Web Applications</a></p>
<p class="toc level2"><a href="bnbyk.html">41.&nbsp;&nbsp;Getting Started Securing Enterprise Applications</a></p>
<p class="toc level1 tocsp"><a href="gijue.html">Part&nbsp;VIII&nbsp;Java EE Supporting Technologies</a></p>
<p class="toc level2"><a href="gijto.html">42.&nbsp;&nbsp;Introduction to Java EE Supporting Technologies</a></p>
<p class="toc level2"><a href="bncih.html">43.&nbsp;&nbsp;Transactions</a></p>
<p class="toc level2"><a href="bncjh.html">44.&nbsp;&nbsp;Resource Connections</a></p>
<p class="toc level2"><a href="bncdq.html">45.&nbsp;&nbsp;Java Message Service Concepts</a></p>
<p class="toc level2"><a href="bncgv.html">46.&nbsp;&nbsp;Java Message Service Examples</a></p>
<p class="toc level2"><a href="gkahp.html">47.&nbsp;&nbsp;Advanced Bean Validation Concepts and Examples</a></p>
<p class="toc level2"><a href="gkeed.html">48.&nbsp;&nbsp;Using Java EE Interceptors</a></p>
<p class="toc level1 tocsp"><a href="gkgjw.html">Part&nbsp;IX&nbsp;Case Studies</a></p>
<p class="toc level2"><a href="gkaee.html">49.&nbsp;&nbsp;Duke's Tutoring Case Study Example</a></p>
<p class="toc level1 tocsp"><a href="idx-1.html">Index</a></p>
</td>
      <td width="10px">&nbsp;</td>
      <td>
         <div class="header">
             <div class="banner">
                <table width="100%" border="0" cellpadding="5" cellspacing="0">
                   <tbody>
                      <tr>
                         <td valign="bottom"><p class="Banner">The Java EE 6 Tutorial
</p></td>
                         <td align="right"  valign="bottom"><img src="graphics/javalogo.png" alt="Java Coffee Cup logo"></td>
                      </tr>
                   </tbody>
                </table>
             </div>

             <div class="header-links">
	         <a href="./index.html">Home</a> | 
<a href="../information/download.html">Download</a> | 
<a href="./javaeetutorial6.pdf">PDF</a> | 
<a href="../information/faq.html">FAQ</a> | 
<a href="http://download.oracle.com/javaee/feedback.htm">Feedback</a>

             </div>
             <div class="navigation">
                 <a href="giqsq.html"><img src="graphics/leftButton.gif" border="0" alt="Previous" title="Previous"></a>
                 <a href="p1.html"><img src="graphics/upButton.gif" border="0" alt="Contents" title="Contents"></a>
                 <a href="bnbtg.html"><img src="graphics/rightButton.gif" border="0" alt="Next" title="Next"></a>
             </div>
         </div>

	 <div class="maincontent">      	 
             

<a name="gkanq"></a><h2>The <tt>address-book</tt> Application</h2>
<a name="indexterm-1703"></a><a name="indexterm-1704"></a><p>The <tt>address-book</tt> example application is a simple web application that stores contact data.
It uses a single entity class, <tt>Contact</tt>, that uses the Java API
for JavaBeans Validation (Bean Validation) to validate the data stored in the persistent
attributes of the entity, as described in <a href="bnbqa.html#gkahq">Validating Persistent Fields and Properties</a>.</p>



<a name="gkaoj"></a><h3>Bean Validation Constraints in <tt>address-book</tt></h3>
<a name="indexterm-1705"></a><p>The <tt>Contact</tt> entity uses the <tt>@NotNull</tt>, <tt>@Pattern</tt>, and <tt>@Past</tt> constraints on the persistent
attributes.</p>

<p>The <tt>@NotNull</tt> constraint marks the attribute as a required field. The attribute must
be set to a non-null value before the entity can be persisted or
modified. Bean Validation will throw a validation error if the attribute is null
when the entity is persisted or modified.</p>

<p>The <tt>@Pattern</tt> constraint defines a regular expression that the value of the attribute
must match before the entity can be persisted or modified. This constraint has
two different uses in <tt>address-book</tt>.</p>


<ul><li><p>The regular expression declared in the <tt>@Pattern</tt> annotation on the <tt>email</tt> field matches email addresses of the form <tt><i>name</i>@<i>domain name</i>.<i>top level domain</i></tt>, allowing only valid characters for email addresses. For example, <tt>username@example.com</tt> will pass validation, as will <tt>firstname.lastname@mail.example.com</tt>. However, <tt>firstname,lastname@example.com</tt>, which contains an illegal comma character in the local name, will fail validation.</p>

</li>
<li><p>The <tt>mobilePhone</tt> and <tt>homePhone</tt> fields are annotated with a <tt>@Pattern</tt> constraint that defines a regular expression to match phone numbers of the form <tt>(<i>xxx</i>) <i>xxx</i>&ndash;<i>xxxx</i></tt>.</p>

</li></ul>
<p>The <tt>@Past</tt> constraint is applied to the birthday field, which must be a
<tt>java.util.Date</tt> in the past.</p>

<p>Here are the relevant parts of the <tt>Contact</tt> entity class:</p>

<pre>@Entity
public class Contact implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    @NotNull
    protected String firstName;
    @NotNull
    protected String lastName;
    @Pattern(regexp="[a-z0-9!#$%&amp;'*+/=?^_`{|}~-]+(?:\\."
        +"[a-z0-9!#$%&amp;'*+/=?^_`{|}~-]+)*"
        +"@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?",
             message="{invalid.email}")
    protected String email;
    @Pattern(regexp="^\\(?(\\d{3})\\)?[- ]?(\\d{3})[- ]?(\\d{4})$",
             message="{invalid.phonenumber}")
    protected String mobilePhone;
    @Pattern(regexp="^\\(?(\\d{3})\\)?[- ]?(\\d{3})[- ]?(\\d{4})$",
             message="{invalid.phonenumber}")
    protected String homePhone;
    @Temporal(javax.persistence.TemporalType.DATE)
    @Past
    protected Date birthday;
    ...
}</pre>

<a name="gkanl"></a><h3>Specifying Error Messages for Constraints in <tt>address-book</tt></h3>
<p>Some of the constraints in the <tt>Contact</tt> entity specify an optional message:</p>

<pre>@Pattern(regexp="^\\(?(\\d{3})\\)?[- ]?(\\d{3})[- ]?(\\d{4})$",
             message="{invalid.phonenumber}")
    protected String homePhone;</pre><p>The optional message element in the <tt>@Pattern</tt> constraint overrides the default validation message.
The message can be specified directly:</p>

<pre>@Pattern(regexp="^\\(?(\\d{3})\\)?[- ]?(\\d{3})[- ]?(\\d{4})$",
             message="Invalid phone number!")
    protected String homePhone;</pre><p>The constraints in <tt>Contact</tt>, however, are strings in the resource bundle <tt></tt><i>tut-install</i><tt>/examples/persistence/address-book/src/java/ValidationMessages.properties</tt>. This
allows the validation messages to be located in one single properties file and
the messages to be easily localized. Overridden Bean Validation messages must be placed
in a resource bundle properties file named <tt>ValidationMessages.properties</tt> in the default package,
with localized resource bundles taking the form <tt>ValidationMessages_</tt><i>locale-prefix</i><tt>.properties</tt>. For example, <tt>ValidationMessages_es.properties</tt> is the resource
bundle used in Spanish speaking locales.</p>



<a name="gkaon"></a><h3>Validating <tt>Contact</tt> Input from a JavaServer Faces Application</h3>
<a name="indexterm-1706"></a><p>The <tt>address-book</tt> application uses a JavaServer Faces web front end to allow
users to enter contacts. While JavaServer Faces has a form input validation mechanism
using tags in Facelets XHTML files, <tt>address-book</tt> doesn&rsquo;t use these validation tags.
Bean Validation constraints in JavaServer Faces managed beans, in this case in the
<tt>Contact</tt> entity, automatically trigger validation when the forms are submitted.</p>

<p>The following code snippet from the <tt>Create.xhtml</tt> Facelets file shows some of the
input form for creating new <tt>Contact</tt> instances:</p>

<pre>&lt;h:form>
    &lt;h:panelGrid columns="3">
        &lt;h:outputLabel value="#{bundle.CreateContactLabel_firstName}" 
                       for="firstName" />
        &lt;h:inputText id="firstName" 
                     value="#{contactController.selected.firstName}" 
                     title="#{bundle.CreateContactTitle_firstName}" />
        &lt;h:message for="firstName" 
                   errorStyle="color: red" 
                   infoStyle="color: green" />
        &lt;h:outputLabel value="#{bundle.CreateContactLabel_lastName}" 
                       for="lastName" />
        &lt;h:inputText id="lastName" 
                     value="#{contactController.selected.lastName}" 
                     title="#{bundle.CreateContactTitle_lastName}" />
        &lt;h:message for="lastName" 
                   errorStyle="color: red" 
                   infoStyle="color: green" />
        ...
    &lt;/h:panelGrid>
&lt;/h:form></pre><p>The <tt>&lt;h:inputText></tt> tags <tt>firstName</tt> and <tt>lastName</tt> are bound to the attributes in
the <tt>Contact</tt> entity instance <tt>selected</tt> in the <tt>ContactController</tt> stateless session bean. Each <tt>&lt;h:inputText></tt> tag
has an associated <tt>&lt;h:message></tt> tag that will display validation error messages. The form
doesn&rsquo;t require any JavaServer Faces validation tags, however.</p>



<a name="gkaop"></a><h3>Building, Packaging, Deploying, and Running the <tt>address-book</tt> Application</h3>
<p>This section describes how to build, package, deploy, and run the <tt>address-book</tt>
application. You can do this using either NetBeans IDE or Ant.</p>



<a name="gkaod"></a><h4>Building, Packaging, Deploying, and Running the <tt>address-book</tt> Application in NetBeans IDE</h4>
<ol>
<li><b>From the File menu, choose Open Project.</b></li>
<li><b>In the Open Project dialog, navigate to:</b><pre><tt></tt><i>tut-install</i><tt>/examples/persistence/</tt></pre></li>
<li><b>Select the <tt>address-book</tt> folder.</b></li>
<li><b>Select the Open as Main Project and Open Required Projects check boxes.</b></li>
<li><b>Click Open Project.</b></li>
<li><b>In the Projects tab, right-click the <tt>address-book</tt> project and select Run.</b><p>After the application has been deployed, a web browser window appears at the
following URL:</p><pre>http://localhost:8080/address-book/</pre></li>
<li><b>Click Show All Contact Items, then Create New Contact. Type values in the
form fields; then click Save.</b><p>If any of the values entered violate the constraints in <tt>Contact</tt>, an error
message will appear in red beside the form field with the incorrect values.</p></li></ol>

<a name="gkanz"></a><h4>Building, Packaging, Deploying, and Running the <tt>address-book</tt> Application Using Ant</h4>
<ol>
<li><b>In a terminal window, go to:</b><pre> <tt></tt><i>tut-install</i><tt>/examples/persistence/address-book</tt></pre></li>
<li><b>Type the following command:</b><pre><tt><b>ant</b></tt></pre><p>This will compile and assemble the <tt>address-book</tt> application.</p></li>
<li><b>Type the following command:</b><pre><tt><b>ant deploy</b></tt></pre><p>This will deploy the application to GlassFish Server.</p></li>
<li><b>Open a web browser window and type the following URL:</b><pre><tt><b>http://localhost:8080/address-book/</b></tt></pre>
<hr><p><b>Tip - </b>As a convenience, the <tt>all</tt> task will build, package, deploy, and run the
application. To do this, type the following command:</p>

<pre><tt><b>ant all</b></tt></pre>
<hr>
</li>
<li><b>Click Show All Contact Items, then Create New Contact. Type values in the
form fields; then click Save.</b><p>If any of the values entered violate the constraints in <tt>Contact</tt>, an error
message will appear in red beside the form field with the incorrect values.</p></li></ol>
         </div>
         <div class="navigation">
             <a href="giqsq.html"><img src="graphics/leftButton.gif" border="0" alt="Previous" title="Previous"></a>
             <a href="p1.html"><img src="graphics/upButton.gif" border="0" alt="Contents" title="Contents"></a>
             <a href="bnbtg.html"><img src="graphics/rightButton.gif" border="0" alt="Next" title="Next"></a>
         </div>

         <div class="copyright">
      	    <p>Copyright &copy; 2011, Oracle and/or its affiliates. All rights reserved. <a href="docinfo.html">Legal Notices</a></p>
      	 </div>

      </td>
   </tr>
</tbody>
</table>
</body>
</html>

